iT邦幫忙

2023 iThome 鐵人賽

DAY 1
0
Cloud Native

Automated Deployment系列 第 1

Evolution of deployment

  • 分享至 

  • xImage
  •  

從古至今,發布軟體的方式不斷演變,從早期的 manually deployment 到這幾年常見的容器話工具,幫助我們省去需多時間、人力、還有金錢。

在開始之前,我們一起看看 Application Deployment 的歷史


實體伺服器 - 西元 2000 年前

早在西元 2000 年前,但凡你需要發佈一套系統,就得購買一台實體伺服器,當你有多套系統要發佈,就必須擁有多台的實體伺服器,每台伺服器的管裡與維護皆需要大量的人力、時間、金錢來完成。倘若有軟體需要發佈到不同的伺服器上,也可能因為每一台的伺服器規格或設置不同,導致軟體需要調整。

想想在 Client-Server Architecture 之下,一台 server 需要負擔的 clients 請求量有多大?需要消耗多少記憶體,CPU 多少才夠?

設想當 server 的資源不夠用,或者在採買 server 前高估了需求,導致之後要在 server 上調整,都是相當好成本的開銷。

https://ithelp.ithome.com.tw/upload/images/20230916/20151632EdVVEsOb72.jpg

虛擬化主機 - Virtual Machine

VM 把上個世代的實體伺服器「虛擬化」,多個 VM 可以「同時運行」在一台實體主機上,這台可以運行單、多的 VM 的實體主機普遍稱 Host Machine,那些運行在 Host Machine 上的 VM 普遍稱作 Guest Machine,這些 VM 共享了實體主機的資源,不管是記憶體容量,還是 CPU 等等。

市上常見的 Virtual Machine Monitor 為 Hypervisor,分成 Type 1 和 Type 2:

Type 1 :
1.直接在 Host Machine 的硬體上執行,執行效率高
2.需要硬體支援
3.監控、控制 Host Machine 上的硬體分配情形,以及 Guest Machine 的作業系統

Type 2 :
1.在 Host Machine 的作業系統上執行,相較 Type 1,執行效率較低
2.作為應用程式,如他其他程式在做作業系統上執行

https://ithelp.ithome.com.tw/upload/images/20230916/201516325EFL909OOn.jpg

使用 VM 的好處
-減省租用、購買多台 Server 的開銷
-非常彈性,不同作業系統能同時在同一台主機上運行
-有效運用主機資源,讓每個資源都能充分利用

使用 VM 的壞處
-效能較差,相比同樣的作業系統、軟體直接架在主機上來的更低效能
-兼容性問題,作業系統、軟體可能因為架在不同的硬體主機上導致不正常運作,或直接無法運作

容器化 - Containerization

和 VM 差異在於:
VM 是在實體主機虛擬化出來多個作業系統; Container 是在作業系統上虛擬化出來多個執行環境。
也就是原本一個 OS 只能跑一個 App,變成一個 OS 可以跑多個 App。

試想一位太空人穿上太空衣,他就能在宇宙間的各個星球輕鬆的遊走; Container 就像應用程式的太空衣,讓應用程式在不同的環境之下,都能夠迅速地適應並正常運作。

Container 封裝了運作應用程式所需的執行環境包括 Libraries, Dependencies, Configuration,利用這種形式快速從地端部署到雲端,或者雲端到地端。


下一篇
Evolution of deployment II
系列文
Automated Deployment3
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言